//
//  TEST.c
//  数据结构
//
//  Created by 马鹏朔 on 2022/11/5.
//

//#include "数据结构day1.h"
//#include<stdio.h>
//#include<stdlib.h>
//#include<assert.h>
//
//void TestSeqLIst1()
//{
//    SL sl;
//    SLInit(&sl);
//}
//void TestSeqList2()
//{
//    SL sl;
//    SLDestory(&sl);
//}
//void TestSeList3()
//{
//    SL sl;
//    SLInit(&sl);
//    SLPushBack(&sl,1);
//    SLPushBack(&sl,2);
//    SLPushBack(&sl,3);
//    SLPushBack(&sl,4);
//    SLPushBack(&sl,5);
//    SLPrint(&sl);
//    SLDestory(&sl);
//
//
//}
//int main()
//{
//    TestSeList3();
//    return 0;
//}
#include "数据结构day1.h"
void SLPrint(SL* psl)
{
    assert(psl);
    for(int i=0;i<psl->size;i++)
    {
        printf("%d ",psl->a[i]);
    }
}
void SLInit(SL* psl)
{
    assert(psl);
    psl->a = NULL;
  psl->capacity=psl->size=0;
}
void SLDestory(SL *psl)
{
    assert(psl);
    if(psl->a)
    {
        free(psl->a);
        psl->a=NULL;
        psl->capacity=psl->size=0;
        
    }
}
void SLPushBack(SL* psl,SLDataType x)
{
    assert(psl);
    //检查容量
    
    if(psl->size==psl->capacity)
    {
        int newCapcity=psl->capacity==0?4:psl->capacity*2;
      SLDataType* tmp=  realloc(psl->a,newCapcity*sizeof(SLDataType));
        if(tmp==NULL)
        {
            perror("realloc fail");
            exit(-1);
        }
        psl->a=tmp;
        psl->capacity=newCapcity;
    }
    psl->a[psl->size]=x;
    psl->size++;
    
}


